package com.xueyi.rebar.delivery.domain.po;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xueyi.common.core.web.tenant.base.TBaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.xueyi.common.core.annotation.Excel;

/**
 * 配送单 持久化对象
 *
 * @author xueyi
 */
public class RebarDistributionDeliveryOrderPo extends TBaseEntity {

    private static final long serialVersionUID = 1L;

    /** 配送单编号 */
    @Excel(name = "配送单编号")
    @TableField("delivery_order_code")
    private String deliveryOrderCode;

    /** 订单编号 */
    @Excel(name = "订单编号")
    @TableField("order_code")
    private String orderCode;

    /** 工区id */
    @Excel(name = "工区id")
    @TableField("workarea_id")
    private Long workareaId;

    /** 配送商id */
    @Excel(name = "配送商id")
    @TableField("distributor_manage_id")
    private Long distributorManageId;

    /** 车辆id */
    @Excel(name = "车辆id")
    @TableField("vehicle_id")
    private Long vehicleId;

    /** 配送单理论重量 */
    @Excel(name = "配送单理论重量")
    @TableField("theoretical_weight")
    private Integer theoreticalWeight;

    /** 配送单实际重量 */
    @Excel(name = "配送单实际重量")
    @TableField("real_weight")
    private Integer realWeight;

    /** 配送单审核状态;状态：0.未提交 1.处理中 2.审核通过 3.审核不通过 4.已取消 5.已作废*/
    @Excel(name = "配送单审核状态;状态：0.未提交 1.处理中 2.审核通过 3.审核不通过 4.已取消 5.已作废")
    @TableField("audit_status")
    private Integer auditStatus;

    /** 配送单状态;状态：0.未出厂 1.已出厂 2.已到场 */
    @Excel(name = "配送单状态;状态：0.未出厂 1.已出厂 2.已到场")
    @TableField("status")
    private String status;

    /** 出厂时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "出厂时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("leave_factory_time")
    private Date leaveFactoryTime;

    /** 计划到场时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "计划到场时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("plan_arrive_time")
    private Date planArriveTime;

    /** 始发地址 */
    @Excel(name = "始发地址")
    @TableField("source_address")
    private String sourceAddress;

    /** 配送地址 */
    @Excel(name = "配送地址")
    @TableField("target_address")
    private String targetAddress;

    /** 调拨人及联系方式 */
    @Excel(name = "调拨人及联系方式")
    @TableField("adjustman_and_telephone")
    private String adjustmanAndTelephone;

    /** 接收人及联系方式 */
    @Excel(name = "接收人及联系方式")
    @TableField("receiveman_and_telephone")
    private String receivemanAndTelephone;

    /** 材料状态;（1成品，2半成品） */
    @Excel(name = "材料状态;", readConverterExp = "1=成品，2半成品")
    @TableField("material_status")
    private String materialStatus;

    /** 审批流程实例编号 */
    @TableField("current_flowInstance_id")
    private String currentFlowInstanceId;

    public void setDeliveryOrderCode(String deliveryOrderCode) {
        this.deliveryOrderCode = deliveryOrderCode;
    }

    public String getDeliveryOrderCode() {
        return deliveryOrderCode;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public String getOrderCode() {
        return orderCode;
    }

    public void setWorkareaId(Long workareaId) {
        this.workareaId = workareaId;
    }

    public Long getWorkareaId() {
        return workareaId;
    }

    public void setDistributorManageId(Long distributorManageId) {
        this.distributorManageId = distributorManageId;
    }

    public Long getDistributorManageId() {
        return distributorManageId;
    }

    public void setVehicleId(Long vehicleId) {
        this.vehicleId = vehicleId;
    }

    public Long getVehicleId() {
        return vehicleId;
    }

    public void setTheoreticalWeight(Integer theoreticalWeight) {
        this.theoreticalWeight = theoreticalWeight;
    }

    public Integer getTheoreticalWeight() {
        return theoreticalWeight;
    }

    public void setRealWeight(Integer realWeight) {
        this.realWeight = realWeight;
    }

    public Integer getRealWeight() {
        return realWeight;
    }

    public void setAuditStatus(Integer auditStatus) {
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus() {
        return auditStatus;
    }

    @Override
    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String getStatus() {
        return status;
    }

    public void setLeaveFactoryTime(Date leaveFactoryTime) {
        this.leaveFactoryTime = leaveFactoryTime;
    }

    public Date getLeaveFactoryTime() {
        return leaveFactoryTime;
    }

    public void setPlanArriveTime(Date planArriveTime) {
        this.planArriveTime = planArriveTime;
    }

    public Date getPlanArriveTime() {
        return planArriveTime;
    }

    public void setSourceAddress(String sourceAddress) {
        this.sourceAddress = sourceAddress;
    }

    public String getSourceAddress() {
        return sourceAddress;
    }

    public void setTargetAddress(String targetAddress) {
        this.targetAddress = targetAddress;
    }

    public String getTargetAddress() {
        return targetAddress;
    }

    public void setAdjustmanAndTelephone(String adjustmanAndTelephone) {
        this.adjustmanAndTelephone = adjustmanAndTelephone;
    }

    public String getAdjustmanAndTelephone() {
        return adjustmanAndTelephone;
    }

    public void setReceivemanAndTelephone(String receivemanAndTelephone) {
        this.receivemanAndTelephone = receivemanAndTelephone;
    }

    public String getReceivemanAndTelephone() {
        return receivemanAndTelephone;
    }

    public void setMaterialStatus(String materialStatus) {
        this.materialStatus = materialStatus;
    }

    public String getMaterialStatus() {
        return materialStatus;
    }

    public String getCurrentFlowInstanceId() {
        return currentFlowInstanceId;
    }

    public void setCurrentFlowInstanceId(String currentFlowInstanceId) {
        this.currentFlowInstanceId = currentFlowInstanceId;
    }
}